/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dsw2.biblioteca.bl;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.its.desarrollosw2.Categoria;
import mx.its.desarrollosw2.CategoriaDeLibro;
import mx.its.desarrollosw2.Libro;
import mx.its.desarrollosw2.dao.CategoriaDaoLocal;
import mx.its.desarrollosw2.dao.CategoriaDeLibroDaoLocal;
import mx.its.dsw2.biblioteca.enumeracion.Estadotransaccion;

/**
 *
 * @author sistemas
 */
@Stateless
public class CategoriaBl implements CategoriaBlLocal {
    @EJB
    private CategoriaDeLibroDaoLocal categoriaDeLibroDao;
    @EJB
    private CategoriaDaoLocal categoriaDao;
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")

    @Override
    public Estadotransaccion register(Categoria category) {
              if(categoriaDao.findDuplicity(category)){
    return Estadotransaccion.INCOMPLETO;
}else{
   categoriaDao.create(category);
   return Estadotransaccion.COMPLETO;
    }
    }

    @Override
    public Estadotransaccion modify(Categoria category) {
                  if(category.getId()==null ||categoriaDao.find(category.getId())==null){
    return Estadotransaccion.INCOMPLETO;
}else{
   categoriaDao.edit(category);
   return Estadotransaccion.COMPLETO;
    }
    }

    @Override
    public Estadotransaccion delete(Categoria category) {
                  if(category.getId()==null ||categoriaDao.find(category.getId())==null){
    return Estadotransaccion.INCOMPLETO;
}else{
   categoriaDao.remove(category);
   return Estadotransaccion.COMPLETO;
    }
    }

    @Override
    public List<Categoria> getAll() {
        return categoriaDao.findAll();
    }

    @Override
    public Categoria findById(int idCategoria) {
        return categoriaDao.find(idCategoria);
    }

    @Override
    public List<Categoria> getListByBook(Libro book) {
        List<CategoriaDeLibro> lista= categoriaDeLibroDao.getListByBook(book);
      List<Categoria> listafinal = new ArrayList<Categoria>();

        for(CategoriaDeLibro cdl:lista){
            listafinal.add(cdl.getIdCategoria());
            
        }
        return listafinal;
    }

}
